import request from '@/utils/request'
const base = '/releaselog'

/**
 * 查询ReleaseLog数据列表
 * @param {Object} query - 查询参数
 * @returns {Promise} - Axios请求的Promise对象
 */
export function listReleaseLog(query) {
    return request({
        url: `${base}/list`,
        method: 'get',
        params: query
    })
}

/**
 * 查询ReleaseLog数据详细
 * @param {number} id - ReleaseLog的唯一标识
 * @returns {Promise} - Axios请求的Promise对象
 */
export function getReleaseLog(id) {
    return request({
        url: `${base}/${id}`,
        method: 'get'
    })
}


/**
 * 新增ReleaseLog数据
 * @param {Object} data - 新增的ReleaseLog数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function addReleaseLog(data) {
    return request({
        url: `${base}`,
        method: 'post',
        data: data
    })
}

/**
 * 修改ReleaseLog数据
 * @param {Object} data - 修改的ReleaseLog数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function updateReleaseLog(data) {
    return request({
        url: `${base}`,
        method: 'put',
        data: data
    })
}

/**
 * 删除ReleaseLog数据
 * @param {number|number[]} ids - 要删除的ReleaseLog的ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function delReleaseLog(ids) {
    return request({
        url: `${base}`,
        method: 'delete',
        data: ids
    })
}

/**
 * 发布ReleaseLog数据
 * @param {Object} data - 发布的ReleaseLog数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function release(data) {
    return request({
        url: `${base}/release`,
        method: 'post',
        data: data
    })
}

/**
 * 暂存ReleaseLog数据
 * @param {Object} data - 暂存的ReleaseLog数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function stage(data) {
    return request({
        url: `${base}/stage`,
        method: 'post',
        data: data
    })
}


/**
 * 撤回ReleaseLog数据
 * @param {Object} id - 撤回的ReleaseLog数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function revoke(id) {
    return request({
        url: `${base}/revoke/${id}`,
        method: 'put',
    })
}

/**
 * 获取最新的ReleaseLog
 * @returns {Promise} - Axios请求的Promise对象
 */
export const getLatestReleaseLog = () => {
    return request({
        url: `${base}/latest`,
        method: 'get',
    })
}